---
title: Remix
description: Remix-specific linting rules for Ultracite (also compatible with TanStack Router and React Router).
---

The Remix configuration has file naming conventions for route files. This configuration is also compatible with TanStack Router, React Router, and other file-based routing systems.

## Installation

Add the Remix configuration to your `biome.jsonc`:

```jsonc title="biome.jsonc"
{
  "extends": ["ultracite/core", "ultracite/remix"]
}
```

## Overview

This configuration provides special handling for route files that use filesystem-based routing conventions:

- **Route File Naming**: Disables strict filename conventions for route files
- **Flexible Patterns**: Supports Remix's route naming patterns (dots, dollars, underscores)
- **Framework Agnostic**: Works with Remix, TanStack Router, React Router, and similar systems

## File Pattern Overrides

The configuration applies overrides to route files in these patterns:

- `**/routes/**/*.{tsx,ts}` - Remix v1 routes
- `**/app/routes/**/*.{tsx,ts}` - Remix v2 routes

### Disabled Rules for Route Files

| Rule | Setting | Description |
|------|---------|-------------|
| `useFilenamingConvention` | `off` | Disable kebab-case filename enforcement for route files. Allows special route naming patterns. |

## Why This Configuration Exists

File-based routing systems use special characters in filenames to represent routing patterns:

- `.` (dot) - Represents path segments (e.g., `posts.new.tsx` → `/posts/new`)
- `$` (dollar) - Represents dynamic segments (e.g., `posts.$id.tsx` → `/posts/:id`)
- `_` (underscore) - Represents layout routes or pathless routes

These naming conventions conflict with Ultracite's default kebab-case filename requirement, so this configuration disables that rule specifically for route files.
